package poly.IO;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JSlider;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
/**
*
* @author Dia
*
* The public class DegreeFrame implementing ChangeListener is for
* establishing the degrees of the two input polynomials.
* It describes 2 JSliders, which can be modified to obtain the final desired degree.
* The class implements the method stateChanged.
*/
public class DegreeFrame implements ChangeListener {
private static final int INITIAL_DEGREE1 = 4;
private static final int INITIAL_DEGREE2 = 6;
private static final int MAX_GRADE = 20;
public JFrame frame;
private JSlider jSliderDegree1;
private JSlider jSliderDegree2;
private JLabel jLabelGrade1;
private JLabel jLabelGrade2;
public JButton okButton;
public int degree1 = INITIAL_DEGREE1;
public int degree2 = INITIAL_DEGREE2;
public DegreeFrame() {
frame = new JFrame("Polynomials");
jLabelGrade1 = new JLabel("DEGREE of P1(x):", JLabel.CENTER);
jLabelGrade2 = new JLabel("DEGREE of P2(x):", JLabel.CENTER);
okButton = new JButton("OK");
// okButton.addActionListener((ActionListener) this);
jSliderDegree1 = new JSlider(JSlider.HORIZONTAL, 0, MAX_GRADE, INITIAL_DEGREE1);
jSliderDegree1.setMinorTickSpacing(1);
jSliderDegree1.setMajorTickSpacing(2);
jSliderDegree1.setPaintTicks(true);
jSliderDegree1.setPaintLabels(true);
jSliderDegree1.addChangeListener((ChangeListener) this);
jSliderDegree2 = new JSlider(JSlider.HORIZONTAL, 0, MAX_GRADE, INITIAL_DEGREE2);
jSliderDegree2.setMinorTickSpacing(1);
jSliderDegree2.setMajorTickSpacing(2);
jSliderDegree2.setPaintTicks(true);
jSliderDegree2.setPaintLabels(true);
jSliderDegree2.addChangeListener((ChangeListener) this);
frame.add(jLabelGrade1);
frame.add(jSliderDegree1);
frame.add(jLabelGrade2);
frame.add(jSliderDegree2);
frame.add(okButton);
frame.setLayout(new GridLayout(5, 1));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500, 400);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
public void stateChanged(ChangeEvent event) {
if (event.getSource() == jSliderDegree1) {
if (!jSliderDegree1.getValueIsAdjusting()) {
degree1 = (int) jSliderDegree1.getValue();
System.out.println("" + degree1 + " " + degree2);
}
} else if (event.getSource() == jSliderDegree2) {
if (!jSliderDegree2.getValueIsAdjusting()) {
degree2 = (int) jSliderDegree2.getValue();
System.out.println("" + degree1 + " " + degree2);
}
}
}
}